#region license

// Copyright (c) 2007, Michael A. Rose (The Universal Sun, Inc.) (michael@theuniversalsun.com)
// All rights reserved.
//
// This file is part of Expergent.
//
// Expergent is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License (GPL) as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
// 
// Expergent is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this distribution; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#endregion

using System.Configuration;
using System.Xml;

namespace Expergent.Configuration
{
    ///<summary>Expergent Configuration Section
    ///</summary>
    public class ExpergentConfigSection : IConfigurationSectionHandler
    {
        #region IConfigurationSectionHandler Members

        /// <summary>
        /// Creates a configuration section handler.
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="configContext">Configuration context object.</param>
        /// <param name="section"></param>
        /// <returns>The created section handler object.</returns>
        public object Create(object parent, object configContext, XmlNode section)
        {
            ExpergentOptions options = new ExpergentOptions();
            if (section.Attributes["ruleFolder"] != null)
                options.RuleFolder = section.Attributes["ruleFolder"].Value;
            if (section.Attributes["loadRulesFromAssemblies"] != null)
                options.LoadRulesFromAssemblies = bool.Parse(section.Attributes["loadRulesFromAssemblies"].Value);
            return options;
        }

        #endregion
    }
}